import Vue from "vue";
import router from "@/router";
import store from "@/store";
import CryptoJS from "crypto-js";

export function encryptPassword(data) {
  let key = CryptoJS.enc.Latin1.parse("n1nLsxcFv4nHakPJ");
  var iv = "eiW760D6HPkACcDK";
  // 加密
  var encrypted = CryptoJS.AES.encrypt(data, key, {
    iv: iv,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.ZeroPadding,
  });

  // Base64编码输出
  return encrypted.toString();
}

/**
 * 获取uuid
 */
export function getUUID() {
  return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
    return (c === "x" ? (Math.random() * 16) | 0 : "r&0x3" | "0x8").toString(
      16
    );
  });
}

/**
 * 是否有权限
 * @param {*} key
 */
export function isAuth(key) {
  return (
    JSON.parse(sessionStorage.getItem("permissions") || "[]").indexOf(key) !==
      1 || false
  );
}

/**
 * 树形数据转换
 * @param {*} data
 * @param {*} id
 * @param {*} pid
 */
export function treeDataTranslate(data, id = "id", pid = "parentId") {
  var res = [];
  var temp = {};
  for (var i = 0; i < data.length; i++) {
    temp[data[i][id]] = data[i];
  }
  for (var k = 0; k < data.length; k++) {
    if (temp[data[k][pid]] && data[k][id] !== data[k][pid]) {
      if (!temp[data[k][pid]]["children"]) {
        temp[data[k][pid]]["children"] = [];
      }
      if (!temp[data[k][pid]]["_level"]) {
        temp[data[k][pid]]["_level"] = 1;
      }
      data[k]["_level"] = temp[data[k][pid]]._level + 1;
      temp[data[k][pid]]["children"].push(data[k]);
    } else {
      res.push(data[k]);
    }
  }
  return res;
}

/**
 * 清除登录信息
 */
export function clearLoginInfo() {
  //Vue.cookie.delete('token')
  window.sessionStorage.removeItem("token");
  store.commit("resetStore");
  router.options.isAddDynamicMenuRoutes = false;
}

export function jumpToLogin() {
  clearLoginInfo();
  router.push({ name: "login" });

  // 加个页面重载, 将重新加载整个系统，清除原先的所有数据，包括上个登录用户的路由信息
  location.reload();
}
